Skip to content

Update opportunities-v6 with dev branch - #2152

Merged
jmgasper merged 28 commits into
opportunities-v6from
dev
Aug 14, 2026
Merged

Update opportunities-v6 with dev branch#2152
jmgasper merged 28 commits into
opportunities-v6from
dev

Conversation

@jmgasper

Copy link
Copy Markdown
Collaborator

Related JIRA Ticket:

https://topcoder.atlassian.net/browse/

What's in this PR?

jmgasper and others added 28 commits August 12, 2026 16:52
What was broken
Support Team members could close an unassigned ticket, and the closed-ticket detail did not identify who closed it.

Root cause
The close control checked only Support Team membership, and the UI contract omitted the closer ID already stored by the API.

What was changed
Disable closure unless the current Support Team user is assigned, accept the optional closer ID, and display the matching assignee handle with a stored-ID fallback.

Any added/updated tests
Updated TicketDetailPage coverage for unassigned and assigned closure access, closer-handle display, and legacy closer-ID fallback.
What was broken

Dashboard report tooltips listed each series value for a month but did not show the combined monthly total.

Root cause

The shared Highcharts configuration only defined the header and per-series rows. It had no formatter or footer that calculated a total, and stack totals would not cover the grouped Challenge Participation report.

What was changed

Extended the shared dashboard tooltip formatter to preserve the existing Highcharts content, sum every hovered series point, and append a comma-formatted Total row. Currency reports include the dollar prefix while count reports remain unit-free.

Any added/updated tests

Updated DashboardChart coverage for currency totals, stacked count totals, and grouped count totals. All 13 Reports suites (54 tests), lint, and the production build pass. The full repository test command was run twice and retains 18 unrelated failures in existing Work, Wallet Admin, Profiles, and Engagements tests.
What was broken

Copilot-only users editing Design Challenges saw the complete review configuration and had to assign checkpoint and final screeners independently.

Root cause

The Review section did not distinguish copilot-only Design Challenge editing from admin and manager configuration, and each screening reviewer synchronized only its own resource role.

What was changed

Show a single Screener selector for copilot-only Design Challenges while leaving the full interface for administrators and managers. Synchronize the selected member across Checkpoint Screener and Screener resources, preserve hidden reviewer defaults, and guard replacement, clearing, legacy assignments, request failures, and overlapping updates.

Any added/updated tests

Added coverage for role and challenge-type gating, simplified rendering, two-round and one-round assignment, replacement and clearing, legacy handle-only resources, fetch failures, in-flight locking, and preservation of reviewer configuration.
What was broken

The previous PM-5787 changes allowed the standard Screener assignment to be deferred, but an empty Checkpoint Screener assignment still blocked draft saves and launches.

Root cause

The shared optional-assignment helper matched only the exact Screening phase name and explicitly excluded Checkpoint Screening.

What was changed

Extended the optional member-assignment policy to both Screening and Checkpoint Screening while keeping their reviewer configurations and scorecards required. Updated the Challenge Editor documentation to describe both deferred roles.

Any added/updated tests

Updated schema, required-field, save, launch, resource-allocation, and hydration coverage for an unassigned Checkpoint Screener. The four focused suites pass with 124 tests; lint and the production build pass. The full repository run matches the clean dev baseline with 222 passing suites and 18 unrelated failing suites.
What was broken

Late July 31 SFDC payments could render as August 1 when the report was viewed from a browser in a positive-offset timezone.

Root cause

The payment table formatted timestamps in the browser's local timezone even though SFDC payment reports use America/New_York calendar dates.

What was changed

Render SFDC payment timestamps explicitly in America/New_York while preserving the existing browser-local formatting for billing-account profile dates.

Any added/updated tests

Added a Reports page regression using the reported July 31 boundary in Asia/Colombo. The test also confirms billing-account profile dates keep their existing formatting.
What was broken
Review showed only the newest submission per member when a Design challenge allowed more than one. Work Manager could also reset the visible submission-limit selection after saving a draft when the save response omitted that metadata entry.

Root cause
Review reduced every finite limit to the API's single isLatest flag and grouped history without using the configured count or exact submission type. The draft editor trusted sparse save-response metadata when resetting the form.

What was changed
Resolve the same latest-X Design policy used by the backend, rank complete member/type history before phase eligibility, and display every eligible Screening and Review row within that window. Preserve unlimited Design behavior and Development's latest-one behavior. Retain the submitted submissionLimit value when a successful draft response omits that entry.

Any added/updated tests
Added and updated regression coverage for finite counts, unlimited and malformed metadata, independent contest/checkpoint histories, rank-before-eligibility, Review row forwarding, Screening selection, and Work Manager draft-save metadata preservation.
What was broken
Support staff and ticket raiser replies displayed only their handles, making their roles difficult to distinguish.

Root cause
The ticket conversation rendered reply handles without using the existing author and ticket-owner IDs to identify support-authored responses.

What was changed
Append (Support Team) to replies authored by someone other than the ticket owner. Ticket-owner replies remain unchanged, including when the owner also holds the Support Team role.

Any added/updated tests
Added TicketDetailPage coverage that verifies the suffix appears for support replies and not for ticket-owner replies.
What was broken

The Open support request modal labeled its challenge picker "Challenge (if applicable)" even though only active challenges are available.

Root cause

The picker label did not reflect the active-status filter already applied by the challenge service.

What was changed

Renamed the picker label to "Active Challenge (if applicable)".

Any added/updated tests

Updated the existing modal tests to query and verify the new accessible label.
What was broken
Links rendered from a support ticket Description navigated the current Support tab instead of opening a new tab.

Root cause
The shared Support Markdown renderer used ReactMarkdown's default anchor output, which does not set a new-tab target.

What was changed
Added a scoped Markdown anchor renderer that preserves the link destination while applying target="_blank" and rel="noopener noreferrer". Updated the renderer documentation to describe the behavior.

Any added/updated tests
Added regression coverage for the bare GFM challenge URL shown in the ticket recording, including href, target, and rel assertions. All 9 Support test suites, lint, and the production build pass. The repository-wide suite still has unrelated failures reproduced on clean origin/dev.
PM-5861: Add totals to dashboard report tooltips
PM-5858: Require assignment before ticket closure
PM-5852: Open support description links in new tabs
PM-5853: Rename active challenge label
PM-5381 Add Member not found page for non existing handles
PM-5819 Fix engagement details styling
PM-5820 Show N/A daysLeftInEngagement for terminated assignments
PM-5755: Simplify design screener assignment
PM-5787: Allow deferred checkpoint screener assignment
PM-5839: Render SFDC payment dates consistently
PM-5758: finish design submission limit handling
Resolve the TicketDetailPage test conflict while preserving both reply-role labelling and the newer assignment/closure coverage. Fix stale deferred-screener fixture references exposed by the merged dev build.
PM-5857: Label support team replies
@jmgasper
jmgasper requested a review from kkartunov as a code owner August 14, 2026 04:15
@jmgasper
jmgasper merged commit 211d84d into opportunities-v6 Aug 14, 2026
7 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants